ui_print(" ");
ui_print("Mi8937 Retrofit Dynamic Partitions Converter");
ui_print("               - by 0xCAFEBABE on 2022-07-18");
ui_print(" ");
assert(getprop("ro.product.device") == "land" || getprop("ro.build.product") == "land" || 
       getprop("ro.product.device") == "santoni" || getprop("ro.build.product") == "santoni" || 
       getprop("ro.product.device") == "prada" || getprop("ro.build.product") == "prada" || 
       getprop("ro.product.device") == "ugg" || getprop("ro.build.product") == "ugg" || 
       getprop("ro.product.device") == "ugglite" || getprop("ro.build.product") == "ugglite" || 
       getprop("ro.product.device") == "riva" || getprop("ro.build.product") == "riva" || 
       getprop("ro.product.device") == "rolex" || getprop("ro.build.product") == "rolex" || 
       getprop("ro.product.device") == "mi8937" || getprop("ro.build.product") == "mi8937" || abort("ERROR: This package is for mi8937 devices; this device is " + getprop("ro.product.device") + "."););
assert(getprop("ro.boot.super_partition") == "system" || abort("ERROR: This recovery doesn't support retrofit dynamic partitions."););
set_progress(0.000000);
ui_print("- Unmounting underlying partitions...");
ifelse(is_mounted("/system_root"),unmount("/system_root"));
ifelse(is_mounted("/vendor"),unmount("/vendor"));
set_progress(0.300000);
ui_print("- Discarding data on underlying partitions...");
run_program("/system/bin/toybox", "blkdiscard", "/dev/block/bootdevice/by-name/cust"); || abort("ERROR: Failed to discard data on cust partition.");
run_program("/system/bin/toybox", "blkdiscard", "/dev/block/bootdevice/by-name/system"); || abort("ERROR: Failed to discard data on system partition.");
set_progress(0.600000);
ui_print("- Flashing super_empty onto system partition...");
package_extract_file("mi8937-super_empty-raw.img", "/dev/block/bootdevice/by-name/system") || abort("ERROR: Failed to flash super_empty image onto system partition.");
ui_print("Done. Dynamic partitions should appear after rebooting.");
set_progress(1.000000);
ui_print(" ");
